From: Jeroen van der Heijden Date: Thu, 23 Jul 2020 12:07:20 +0000 (+0200) Subject: Fixed gcc10 bugs X-Git-Tag: archive/raspbian/2.0.44-1+rpi1~1^2~3^2~4^2~2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=601338dcd2d7ab053db51a6d2aa44146c0664797;p=siridb-server.git Fixed gcc10 bugs --- diff --git a/include/siri/db/listener.h b/include/siri/db/listener.h index eec69f5d..7f0b4fd1 100644 --- a/include/siri/db/listener.h +++ b/include/siri/db/listener.h @@ -7,19 +7,9 @@ #include #include -static uv_async_cb SIRIDB_NODE_ENTER[CLERI_END]; -static uv_async_cb SIRIDB_NODE_EXIT[CLERI_END]; - void siridb_init_listener(void); -static inline uv_async_cb siridb_node_get_enter(enum cleri_grammar_ids gid) -{ - return SIRIDB_NODE_ENTER[gid]; -} - -static inline uv_async_cb siridb_node_get_exit(enum cleri_grammar_ids gid) -{ - return SIRIDB_NODE_EXIT[gid]; -} +uv_async_cb siridb_node_get_enter(enum cleri_grammar_ids gid); +uv_async_cb siridb_node_get_exit(enum cleri_grammar_ids gid); #endif /* SIRIDB_LISTENER_H_ */ diff --git a/include/siri/db/props.h b/include/siri/db/props.h index 1144579b..3dccc8dc 100644 --- a/include/siri/db/props.h +++ b/include/siri/db/props.h @@ -10,28 +10,15 @@ void siridb_init_props(void); -static char * WHO_AM_I = NULL; typedef void (* siridb_props_cb)( siridb_t * siridb, qp_packer_t * packer, int flags); -static siridb_props_cb SIRIDB_PROPS[KW_COUNT]; +siridb_props_cb props_get_cb(int i); +void props_set_who_am_i(char * s); +char * props_get_who_am_i(void); -static inline void props_set_who_am_i(char * s) -{ - WHO_AM_I = s; -} - -static inline char * props_get_who_am_i(void) -{ - return WHO_AM_I; -} - -static inline siridb_props_cb props_get_cb(int i) -{ - return SIRIDB_PROPS[i]; -} #endif /* SIRIDB_PROPS_H_ */ diff --git a/src/siri/db/listener.c b/src/siri/db/listener.c index 9f9657a3..969364ec 100644 --- a/src/siri/db/listener.c +++ b/src/siri/db/listener.c @@ -37,6 +37,20 @@ #include +static uv_async_cb SIRIDB_NODE_ENTER[CLERI_END]; +static uv_async_cb SIRIDB_NODE_EXIT[CLERI_END]; + +uv_async_cb siridb_node_get_enter(enum cleri_grammar_ids gid) +{ + return SIRIDB_NODE_ENTER[gid]; +} + +uv_async_cb siridb_node_get_exit(enum cleri_grammar_ids gid) +{ + return SIRIDB_NODE_EXIT[gid]; +} + + #define MAX_ITERATE_COUNT 10000 /* ten-thousand */ #define MAX_BATCH_REQUIRE_SHARD 100 /* after reading 100 shards, iterate */ diff --git a/src/siri/db/props.c b/src/siri/db/props.c index 0706131e..a555bf25 100644 --- a/src/siri/db/props.c +++ b/src/siri/db/props.c @@ -28,6 +28,30 @@ if (map) \ qp_add_raw(packer, (const unsigned char *) "value", 5); \ } +static siridb_props_cb SIRIDB_PROPS[KW_COUNT]; + +siridb_props_cb props_get_cb(int i) +{ + return SIRIDB_PROPS[i]; +} + +static void props_set_cb(int i, siridb_props_cb cb) +{ + SIRIDB_PROPS[i] = cb; +} + +static char * WHO_AM_I = NULL; + +void props_set_who_am_i(char * s) +{ + WHO_AM_I = s; +} + +char * props_get_who_am_i(void) +{ + return WHO_AM_I; +} + static void prop_active_handles( siridb_t * siridb, qp_packer_t * packer, @@ -183,83 +207,83 @@ void siridb_init_props(void) for (i = 0; i < KW_COUNT; i++) { - SIRIDB_PROPS[i] = NULL; + props_set_cb(i, NULL); } - SIRIDB_PROPS[CLERI_GID_K_ACTIVE_HANDLES - KW_OFFSET] = - prop_active_handles; - SIRIDB_PROPS[CLERI_GID_K_ACTIVE_TASKS - KW_OFFSET] = - prop_active_tasks; - SIRIDB_PROPS[CLERI_GID_K_BUFFER_PATH - KW_OFFSET] = - prop_buffer_path; - SIRIDB_PROPS[CLERI_GID_K_BUFFER_SIZE - KW_OFFSET] = - prop_buffer_size; - SIRIDB_PROPS[CLERI_GID_K_DBNAME - KW_OFFSET] = - prop_dbname; - SIRIDB_PROPS[CLERI_GID_K_DBPATH - KW_OFFSET] = - prop_dbpath; - SIRIDB_PROPS[CLERI_GID_K_DROP_THRESHOLD - KW_OFFSET] = - prop_drop_threshold; - SIRIDB_PROPS[CLERI_GID_K_DURATION_LOG - KW_OFFSET] = - prop_duration_log; - SIRIDB_PROPS[CLERI_GID_K_DURATION_NUM - KW_OFFSET] = - prop_duration_num; - SIRIDB_PROPS[CLERI_GID_K_FIFO_FILES - KW_OFFSET] = - prop_fifo_files; - SIRIDB_PROPS[CLERI_GID_K_EXPIRATION_LOG - KW_OFFSET] = - prop_expiration_log; - SIRIDB_PROPS[CLERI_GID_K_EXPIRATION_NUM - KW_OFFSET] = - prop_expiration_num; - SIRIDB_PROPS[CLERI_GID_K_IDLE_PERCENTAGE - KW_OFFSET] = - prop_idle_percentage; - SIRIDB_PROPS[CLERI_GID_K_IDLE_TIME - KW_OFFSET] = - prop_idle_time; - SIRIDB_PROPS[CLERI_GID_K_IP_SUPPORT - KW_OFFSET] = - prop_ip_support; - SIRIDB_PROPS[CLERI_GID_K_LIBUV - KW_OFFSET] = - prop_libuv; - SIRIDB_PROPS[CLERI_GID_K_LIST_LIMIT - KW_OFFSET] = - prop_list_limit; - SIRIDB_PROPS[CLERI_GID_K_MAX_OPEN_FILES - KW_OFFSET] = - prop_max_open_files; - SIRIDB_PROPS[CLERI_GID_K_MEM_USAGE - KW_OFFSET] = - prop_mem_usage; - SIRIDB_PROPS[CLERI_GID_K_LOG_LEVEL - KW_OFFSET] = - prop_log_level; - SIRIDB_PROPS[CLERI_GID_K_OPEN_FILES - KW_OFFSET] = - prop_open_files; - SIRIDB_PROPS[CLERI_GID_K_POOL - KW_OFFSET] = - prop_pool; - SIRIDB_PROPS[CLERI_GID_K_RECEIVED_POINTS - KW_OFFSET] = - prop_received_points; - SIRIDB_PROPS[CLERI_GID_K_REINDEX_PROGRESS - KW_OFFSET] = - prop_reindex_progress; - SIRIDB_PROPS[CLERI_GID_K_SELECTED_POINTS - KW_OFFSET] = - prop_selected_points; - SIRIDB_PROPS[CLERI_GID_K_SELECT_POINTS_LIMIT - KW_OFFSET] = - prop_select_points_limit; - SIRIDB_PROPS[CLERI_GID_K_SERVER - KW_OFFSET] = - prop_server; - SIRIDB_PROPS[CLERI_GID_K_STARTUP_TIME - KW_OFFSET] = - prop_startup_time; - SIRIDB_PROPS[CLERI_GID_K_STATUS - KW_OFFSET] = - prop_status; - SIRIDB_PROPS[CLERI_GID_K_SYNC_PROGRESS - KW_OFFSET] = - prop_sync_progress; - SIRIDB_PROPS[CLERI_GID_K_TEE_PIPE_NAME - KW_OFFSET] = - prop_tee_pipe_name; - SIRIDB_PROPS[CLERI_GID_K_TIMEZONE - KW_OFFSET] = - prop_timezone; - SIRIDB_PROPS[CLERI_GID_K_TIME_PRECISION - KW_OFFSET] = - prop_time_precision; - SIRIDB_PROPS[CLERI_GID_K_UPTIME - KW_OFFSET] = - prop_uptime; - SIRIDB_PROPS[CLERI_GID_K_UUID - KW_OFFSET] = - prop_uuid; - SIRIDB_PROPS[CLERI_GID_K_VERSION - KW_OFFSET] = - prop_version; - SIRIDB_PROPS[CLERI_GID_K_WHO_AM_I - KW_OFFSET] = - prop_who_am_i; + props_set_cb(CLERI_GID_K_ACTIVE_HANDLES - KW_OFFSET, + prop_active_handles); + props_set_cb(CLERI_GID_K_ACTIVE_TASKS - KW_OFFSET, + prop_active_tasks); + props_set_cb(CLERI_GID_K_BUFFER_PATH - KW_OFFSET, + prop_buffer_path); + props_set_cb(CLERI_GID_K_BUFFER_SIZE - KW_OFFSET, + prop_buffer_size); + props_set_cb(CLERI_GID_K_DBNAME - KW_OFFSET, + prop_dbname); + props_set_cb(CLERI_GID_K_DBPATH - KW_OFFSET, + prop_dbpath); + props_set_cb(CLERI_GID_K_DROP_THRESHOLD - KW_OFFSET, + prop_drop_threshold); + props_set_cb(CLERI_GID_K_DURATION_LOG - KW_OFFSET, + prop_duration_log); + props_set_cb(CLERI_GID_K_DURATION_NUM - KW_OFFSET, + prop_duration_num); + props_set_cb(CLERI_GID_K_FIFO_FILES - KW_OFFSET, + prop_fifo_files); + props_set_cb(CLERI_GID_K_EXPIRATION_LOG - KW_OFFSET, + prop_expiration_log); + props_set_cb(CLERI_GID_K_EXPIRATION_NUM - KW_OFFSET, + prop_expiration_num); + props_set_cb(CLERI_GID_K_IDLE_PERCENTAGE - KW_OFFSET, + prop_idle_percentage); + props_set_cb(CLERI_GID_K_IDLE_TIME - KW_OFFSET, + prop_idle_time); + props_set_cb(CLERI_GID_K_IP_SUPPORT - KW_OFFSET, + prop_ip_support); + props_set_cb(CLERI_GID_K_LIBUV - KW_OFFSET, + prop_libuv); + props_set_cb(CLERI_GID_K_LIST_LIMIT - KW_OFFSET, + prop_list_limit); + props_set_cb(CLERI_GID_K_MAX_OPEN_FILES - KW_OFFSET, + prop_max_open_files); + props_set_cb(CLERI_GID_K_MEM_USAGE - KW_OFFSET, + prop_mem_usage); + props_set_cb(CLERI_GID_K_LOG_LEVEL - KW_OFFSET, + prop_log_level); + props_set_cb(CLERI_GID_K_OPEN_FILES - KW_OFFSET, + prop_open_files); + props_set_cb(CLERI_GID_K_POOL - KW_OFFSET, + prop_pool); + props_set_cb(CLERI_GID_K_RECEIVED_POINTS - KW_OFFSET, + prop_received_points); + props_set_cb(CLERI_GID_K_REINDEX_PROGRESS - KW_OFFSET, + prop_reindex_progress); + props_set_cb(CLERI_GID_K_SELECTED_POINTS - KW_OFFSET, + prop_selected_points); + props_set_cb(CLERI_GID_K_SELECT_POINTS_LIMIT - KW_OFFSET, + prop_select_points_limit); + props_set_cb(CLERI_GID_K_SERVER - KW_OFFSET, + prop_server); + props_set_cb(CLERI_GID_K_STARTUP_TIME - KW_OFFSET, + prop_startup_time); + props_set_cb(CLERI_GID_K_STATUS - KW_OFFSET, + prop_status); + props_set_cb(CLERI_GID_K_SYNC_PROGRESS - KW_OFFSET, + prop_sync_progress); + props_set_cb(CLERI_GID_K_TEE_PIPE_NAME - KW_OFFSET, + prop_tee_pipe_name); + props_set_cb(CLERI_GID_K_TIMEZONE - KW_OFFSET, + prop_timezone); + props_set_cb(CLERI_GID_K_TIME_PRECISION - KW_OFFSET, + prop_time_precision); + props_set_cb(CLERI_GID_K_UPTIME - KW_OFFSET, + prop_uptime); + props_set_cb(CLERI_GID_K_UUID - KW_OFFSET, + prop_uuid); + props_set_cb(CLERI_GID_K_VERSION - KW_OFFSET, + prop_version); + props_set_cb(CLERI_GID_K_WHO_AM_I - KW_OFFSET, + prop_who_am_i); } static void prop_active_handles( diff --git a/src/siri/db/query.c b/src/siri/db/query.c index 64aaf60c..ae744d09 100644 --- a/src/siri/db/query.c +++ b/src/siri/db/query.c @@ -697,6 +697,7 @@ static int QUERY_walk(cleri_node_t * node, siridb_walker_t * walker) { return EXPR_MEM_ALLOC_ERR; } + if ( (func = siridb_node_get_exit(gid)) != NULL && siridb_walker_insert(walker, node, func)) {